The use of computer simulation is widespread in many areas such as circuit design. The cost of manufacturing an integrated circuit is extremely high, and it is often desirable that the hardware incorporated into the integrated circuit be verified prior to the actual fabrication of the chip. To that end, integrated circuit manufacturers often use simulators to verify the hardware and software intended to be executed by the hardware. The desired hardware design is designated at the “target hardware”, while the desired software to be executed by the target hardware is designated as the “target program”.
There are several techniques that are used to simulate target hardware and a target program for verification. One approach is to simulate the hardware using a computer hardware simulator. The hardware simulator is a software program that emulates the responses of the target hardware and is implemented entirely in software. Thus, in the hardware simulator, the target hardware and target program are simulated entirely by computer software. Various types of hardware simulators are known. Another approach uses a microprocessor emulator to model a microprocessor that is typically part of the target hardware and used to execute the target program. Thus, the target program and portions of the target hardware can be simulated by hardware devices such as a processor emulator.
In addition to hardware verification, an electronic component typically undergoes validation testing after actual construction of the hardware and testing of the actual software thereon. This component validation process typically employs electronic test equipment, such as an oscilloscope or a logic analyzer.
With the increasing complexity of electronic components, the visibility of internal states during the validation process is limited to dedicated input/output pins (or to scan-based designs). In the case of dedicated input/output pins, there is a limitation on the number of pins available, and a decision is necessarily made during design of an electronic component which signals will be made available either directly or via multiplex selection.
Often, it is desirable to know internal states of an electronic component during component validation testing in order to evaluate the correctness of generated component outputs, or to analyze unexpected behavior of the component outputs. Such output measurements are best made during validation testing of the actual electronic component, rather than during the component's design verification, which is a simulated environment.